<map version="0.9.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1376144428512" ID="ID_1876363615" MODIFIED="1376144435140" TEXT="fwc">
<node CREATED="1376144439319" ID="ID_1975724131" MODIFIED="1376144448055" POSITION="right" TEXT="ideas">
<node CREATED="1376144450083" ID="ID_1554214070" MODIFIED="1387893700987" TEXT="need popup menu for the views">
<icon BUILTIN="idea"/>
<node CREATED="1376144470262" ID="ID_330482146" MODIFIED="1376144664198" TEXT="popupmenuview">
<richcontent TYPE="NOTE"><html>
  <head>
    
  </head>
  <body>
    <p>
      create &quot;popup menu views&quot; that contain only the popup menu for specific objects
    </p>
    <p>
      together with implementation of the commands
    </p>
    <p>
      these menues can be invoked from any other place
    </p>
  </body>
</html></richcontent>
</node>
</node>
<node CREATED="1376416604312" FOLDED="true" ID="ID_765650047" MODIFIED="1387893703177" TEXT="many kinds of copy-paste">
<icon BUILTIN="idea"/>
<node CREATED="1376416614752" ID="ID_1351583598" MODIFIED="1376416619791" TEXT="&quot;shallow copy&quot;"/>
<node CREATED="1376416620348" ID="ID_1487485146" MODIFIED="1376416626210" TEXT="&quot;deep by referenced&quot;"/>
<node CREATED="1376416626692" ID="ID_1849956852" MODIFIED="1376416633772" TEXT="&quot;deep by parent-child&quot;"/>
<node CREATED="1376416637598" ID="ID_1964538181" MODIFIED="1376416639113" TEXT="?"/>
</node>
<node CREATED="1376146590827" ID="ID_1423248296" MODIFIED="1387893706588" TEXT="it would be better to not store list index at primitives for containment-manipulation, only Id&apos;s (to point out a position in a list)">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1376209491515" ID="ID_1570733998" MODIFIED="1387893675540" TEXT="model">
<node CREATED="1376209494689" ID="ID_1735649250" MODIFIED="1387893687925" TEXT="change RandomPosition and others">
<icon BUILTIN="prepare"/>
<node CREATED="1376209512263" ID="ID_373874449" MODIFIED="1376209640749" TEXT="Instead of &quot;random&quot; the calculate function can get a float value between 0 and 1 that points out the &quot;index&quot; (0 for the first, 1 for the last), so not only random placements are possible."/>
</node>
<node CREATED="1376213663171" ID="ID_180443294" MODIFIED="1387893692888" TEXT="there should be no subclasses of Shooter, instead use aggregation for behaviour-specification">
<icon BUILTIN="stop"/>
</node>
</node>
<node CREATED="1386838118344" ID="ID_133830989" MODIFIED="1387893711219" TEXT="some kind of view-independent AttributeGroup, for example used for &quot;selection&quot; (store of selected objects global to the document)">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1376416369278" FOLDED="true" ID="ID_726681271" MODIFIED="1387893739073" TEXT="GUI ideas">
<node CREATED="1376416380651" ID="ID_1212825308" MODIFIED="1387893715868" TEXT="editor for control points for ParticleTemplate">
<icon BUILTIN="idea"/>
<node CREATED="1376980317704" ID="ID_1718978966" MODIFIED="1376980327692" TEXT="a kind of graph, horizontally time, vertically curve value, shows all kinds of curves for a PT all control points (&quot;time marks&quot;) are displayed color curve can be split into HSV or HSL (have a &quot;split mode&quot; choosable?) vertical scale depends on the selected curve (or show there all together)"/>
<node CREATED="1376980332792" ID="ID_676661974" MODIFIED="1376980403321" TEXT="model-view based table with every control point as row and its data as columns and additional columns for the curves (data in such slot only if the curve has a control point for this time mark)">
<node CREATED="1376980410636" ID="ID_1993210103" MODIFIED="1376980455162" TEXT="the data &quot;slots&quot; are not edited in-place? or yes, use the existing RandomXXXWidget somehow (&quot;persistent editor&quot;?)"/>
<node CREATED="1376980547821" ID="ID_1099027295" MODIFIED="1376980568275" TEXT="or only let activate the &quot;slots&quot; and display editor for the current one in a separate area"/>
<node CREATED="1376980461382" ID="ID_766775278" MODIFIED="1376980478550" TEXT="probably display all editor widgets all the time?">
<node CREATED="1376980480777" ID="ID_1575668809" MODIFIED="1376980505402" TEXT="then a simple widget layout is sufficient"/>
<node CREATED="1376980508321" ID="ID_737148614" MODIFIED="1376980533128" TEXT="but too many widgets at one time and too big editor area"/>
</node>
</node>
<node CREATED="1376980579750" ID="ID_1859049994" MODIFIED="1376980607484" TEXT="have a list of time marks only and separate lists for the curves">
<node CREATED="1376980613449" ID="ID_973619580" MODIFIED="1376980638935" TEXT="make a &quot;time mark selector widget&quot; that displays visually all time marks and let select one">
<node CREATED="1376980640025" ID="ID_81686061" MODIFIED="1376980651695" TEXT="this is only to select a time mark, not edit them"/>
<node CREATED="1376980655327" ID="ID_117467207" MODIFIED="1376980670550" TEXT="use this at every place where time mark must be selected"/>
</node>
<node CREATED="1376980677696" ID="ID_881385417" MODIFIED="1376980744970" TEXT="lists for data curves contain time mark selector and a value editor as an item">
<node CREATED="1376980746097" ID="ID_1767749359" MODIFIED="1376980771190" TEXT="probably these are under each other and control points layed out horizontally"/>
</node>
</node>
</node>
<node CREATED="1385820604184" ID="ID_1930917334" MODIFIED="1387893726704" TEXT="sequence editor">
<icon BUILTIN="idea"/>
<node CREATED="1385820617673" ID="ID_422128548" MODIFIED="1385820631156" TEXT="shooters displayed by time horizontally"/>
<node CREATED="1385820634249" ID="ID_1137183539" MODIFIED="1385820682292" TEXT="for every new particle (one ParticleTemplate usage) created by a shooter a new branch starts">
<node CREATED="1385820694523" ID="ID_1686746606" MODIFIED="1385820743874" TEXT="this can be with minimal start time, maximal end time, or simply a random value like in 3D preview (only a sample of the possible appearances)"/>
<node CREATED="1385820746357" ID="ID_1332011936" MODIFIED="1385820760078" TEXT="&quot;randomize&quot; function for generating a new view"/>
</node>
</node>
<node CREATED="1385820769549" ID="ID_821964925" MODIFIED="1387893734207" TEXT="3D view">
<icon BUILTIN="idea"/>
<node CREATED="1385820776836" ID="ID_1955887355" MODIFIED="1385820799700" TEXT="&quot;randomize&quot; function useful here too"/>
<node CREATED="1385820808932" ID="ID_1245485893" MODIFIED="1385820835127" TEXT="display some of the particles for a ParticleTemplate, attach data about what is displayed and how to change it">
<node CREATED="1386838077835" ID="ID_687307856" MODIFIED="1386838096121" TEXT="even edit of time marks possible there (select and set params)"/>
</node>
</node>
</node>
<node CREATED="1387893748100" ID="ID_1598594408" MODIFIED="1387893751978" TEXT="preview">
<node CREATED="1387893753554" ID="ID_1364907642" MODIFIED="1387894076067" TEXT="PTEditInstance">
<icon BUILTIN="idea"/>
<node CREATED="1387893844254" ID="ID_1584254781" MODIFIED="1387893858557" TEXT="store data for a particletemplate">
<node CREATED="1387893859591" ID="ID_259700838" MODIFIED="1387893871912" TEXT="values got from parent (and these are changeable)"/>
<node CREATED="1387893872617" ID="ID_1414292376" MODIFIED="1387893898639" TEXT="calculated random values or random seed for these">
<node CREATED="1387893900363" ID="ID_1191555776" MODIFIED="1387893956718" TEXT="if &quot;seed&quot; is stored the random function can be used to get the value and with same seed same value will come out, but it is possible to refresh the seeds"/>
<node CREATED="1387894009068" ID="ID_125906737" MODIFIED="1387894023280" TEXT="&quot;seed&quot; not better than storing the values"/>
<node CREATED="1387894023684" ID="ID_39015348" MODIFIED="1387894050710" TEXT="there should be a &quot;randomize&quot; that re-calculates random values, otherwise these do not change"/>
</node>
</node>
<node CREATED="1387894122875" ID="ID_696907890" MODIFIED="1387894158607" TEXT="create a number of these if many particles are created by emitter, but not (always) as much as in &quot;reality&quot;"/>
<node CREATED="1387894167328" ID="ID_189729808" MODIFIED="1387894179751" TEXT="possible to change some &quot;aspects&quot; of a PTEditInstance">
<node CREATED="1387894184285" ID="ID_103051525" MODIFIED="1387894192439" TEXT="end position"/>
<node CREATED="1387894192845" ID="ID_1114074263" MODIFIED="1387894205989" TEXT="time marks and control points on them"/>
<node CREATED="1387894212126" ID="ID_1699209021" MODIFIED="1387894270122" TEXT="probably add &quot;shift&quot; function to Random* to &quot;perturb&quot; the stored value (shift the range without specifying actual min-max-center, only a relative offset)"/>
<node CREATED="1387894292477" ID="ID_115433328" MODIFIED="1387894365364" TEXT="do the change at the actual instance or delegate it to the most far away parent (shooter?), or to the last PTEditInstance (?)"/>
<node CREATED="1387894372445" ID="ID_1105194511" MODIFIED="1387894390136" TEXT="the parent-chain contains ETEditInstance&apos;s too"/>
</node>
</node>
</node>
</node>
<node CREATED="1376144772705" ID="ID_540666655" MODIFIED="1376144775276" POSITION="left" TEXT="doc">
<node CREATED="1376144985303" ID="ID_605589819" MODIFIED="1376144993207" TEXT="actiondispatcher+actionstate">
<node CREATED="1376144997572" ID="ID_655587454" MODIFIED="1376145023690" TEXT="something to direct action (QAction) handling to an active view (widget) that can be different in time"/>
<node CREATED="1376145026429" ID="ID_1737594305" MODIFIED="1376145061813" TEXT="the same QAction&apos;s are used for the current &quot;handler&quot;"/>
</node>
<node CREATED="1376202217426" ID="ID_384115362" MODIFIED="1376202220516" TEXT="primitive">
<node CREATED="1376202222238" ID="ID_178852863" MODIFIED="1376202227263" TEXT="PrimitiveCreatorStore">
<node CREATED="1376202235334" ID="ID_1401326603" MODIFIED="1376202251794" TEXT="map of &lt;primitive ID&gt; to a creator function"/>
<node CREATED="1376202253017" ID="ID_1946807355" MODIFIED="1376202299803" TEXT="used to create a primitive object when its type ID is given, and from a stream (read type ID and create primitive, but do not read in primitive)"/>
<node CREATED="1376202342447" ID="ID_1676191357" MODIFIED="1376202381012" TEXT="also Primitive::create uses it, it does only create a Primitive object from a stream by reading its type, but does not read in the primitive itself"/>
<node CREATED="1376202422436" ID="ID_528494278" MODIFIED="1376202456867" TEXT="the store function of Primitive saves the type too (this is not read in by restore but by Primitive::create)"/>
</node>
<node CREATED="1376206118209" ID="ID_428580620" MODIFIED="1376206154076" TEXT="RemoveObjectFromContainment">
<node CREATED="1376206155688" ID="ID_676964754" MODIFIED="1376206167219" TEXT="this is a &quot;helper-primitive&quot; used by others"/>
<node CREATED="1376206167817" ID="ID_929251391" MODIFIED="1376206188099" TEXT="the object that it operates on is passed always from parent so it is not stored by this"/>
</node>
<node CREATED="1376232549709" ID="ID_734090471" MODIFIED="1376232567479" TEXT="RemoveParticleTemplate and &quot;friends&quot; are not needed any more">
<node CREATED="1376232570154" ID="ID_1661530859" MODIFIED="1376232592387" TEXT="implement &quot;reference collector&quot; classes that collect all references to pt, et, others"/>
<node CREATED="1376232595392" ID="ID_1878551939" MODIFIED="1376232606400" TEXT="these are separate classes for object types"/>
<node CREATED="1376232607221" ID="ID_229698233" MODIFIED="1376232711279" TEXT="when deleting an object the reference collector should be used and all references manually changed by using Primitive&apos;s"/>
<node CREATED="1376232636977" ID="ID_1217322550" MODIFIED="1376232702791" TEXT="so no &quot;double implementation&quot; of reference removal-restore logic is needed (done by Primitives and PrimitiveGroup and not in a new Primitive) and undo-redo becomes more simple"/>
<node CREATED="1376232724941" ID="ID_1354574887" MODIFIED="1376232740842" TEXT="a delete function can be made that performs this process"/>
</node>
</node>
<node CREATED="1376202942945" ID="ID_759275951" MODIFIED="1376202946816" TEXT="document">
<node CREATED="1376202948522" ID="ID_1588801190" MODIFIED="1376202976152" TEXT="DocEvent&apos;s are not used now, Primitive&apos;s and its events are better"/>
</node>
<node CREATED="1376210869845" ID="ID_1884710908" MODIFIED="1376210871235" TEXT="model"/>
<node CREATED="1376212415862" ID="ID_1830568895" MODIFIED="1376212421231" TEXT="ModelDataObjectadapter">
<node CREATED="1376212423186" ID="ID_1987568181" MODIFIED="1376212469770" TEXT="remove-restore references">
<richcontent TYPE="NOTE"><html>
  <head>
    
  </head>
  <body>
    <p>
      Used at delete of a data object to clear the internal references and probably restore these at a later point.
    </p>
    <p>
      Before a data object is deleted the remove_references function is called, it should clear all references to the passed object.
    </p>
    <p>
      After the delete was undone in the document, the restore function is called to restore the previous references.
    </p>
    <p>
      Data of the references is kept in a single QVariant.
    </p>
    <p>
      
    </p>
  </body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1376145085131" ID="ID_1317450431" MODIFIED="1376145086959" POSITION="right" TEXT="todo">
<node CREATED="1376145088541" ID="ID_11258370" MODIFIED="1385820974338" TEXT="ObjTreeView::delete_object">
<richcontent TYPE="NOTE"><html>
  <head>
    
  </head>
  <body>
    <p>
      done?
    </p>
  </body>
</html></richcontent>
</node>
<node CREATED="1376145119883" ID="ID_726645501" MODIFIED="1376145157032" TEXT="working ObjectPage&apos;s for every type"/>
<node CREATED="1376212512684" ID="ID_1814359961" MODIFIED="1376212538925" TEXT="change &quot;qt_version&quot; values to actual version?"/>
<node CREATED="1387893179495" ID="ID_1213212057" MODIFIED="1387893199474" TEXT="add p_phase in calculate of non-RandomDouble Random* classes"/>
<node CREATED="1387893156996" ID="ID_955425826" MODIFIED="1387893162069" TEXT="update player">
<node CREATED="1387893163749" ID="ID_709123183" MODIFIED="1387893212394" TEXT="add support for p_phase in Random*"/>
</node>
<node CREATED="1388603375048" ID="ID_722411360" MODIFIED="1388603406245" TEXT="correct PTGenericView (and other?) behavior when error happens at edit actions (restore previous value)"/>
</node>
<node CREATED="1376146735445" ID="ID_1965867513" MODIFIED="1376146739101" POSITION="right" TEXT="observations"/>
<node CREATED="1376145229392" ID="ID_471228271" MODIFIED="1376145232349" POSITION="left" TEXT="app usage">
<node CREATED="1376145235931" ID="ID_1639228028" MODIFIED="1376145267403" TEXT="main window contains a list of all main-objects (left) and a editor-pane (right)"/>
</node>
</node>
</map>
